package com.hs.srm.admin.modules.orders.vo;

import java.io.Serializable;

import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import cn.afterturn.easypoi.excel.annotation.Excel;

import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotations.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.hs.srm.base.common.annotation.AddressMapping;
import com.hs.srm.base.common.annotation.DictMapping;
import com.hs.srm.base.common.base.CloneableEntity;
import com.hs.srm.base.common.utils.AddressDataUtil.AddressType;
import com.hs.srm.base.common.utils.DictDataUtil.DictType;

@Setter
@Getter
@ToString
public class ProScmPoItemVo implements Serializable, CloneableEntity<ProScmPoItemVo> {
	
	/**
	 * 克隆当前对象
	 * @return
	 */
	@Override
	public ProScmPoItemVo clone() {
		try {
			return (ProScmPoItemVo)super.clone();
		} catch(CloneNotSupportedException ex) {
			ex.printStackTrace();
		}
		return null;
	}
	
	private static final long serialVersionUID = -135324057878529082L;

	/*
	 * 行项目ID
	*/
	private java.lang.String poItemId;

	/*
	 * 行项目号
	*/
	private java.lang.String itemNo;

	/*
	 * 物料编码
	*/
	private java.lang.String materialCode;

	/*
	 * 物料描述
	*/
	private java.lang.String materialDesc;

	/*
	 * 工厂
	*/
	@DictMapping(type = DictType.GC)
	private java.lang.String factory;

	/*
	 * 库存地点
	*/
	@DictMapping(type = DictType.KCDD)
	private java.lang.String storage;

	/*
	 * 物料组
	*/
	@DictMapping(type = DictType.WLZ)
	private java.lang.String materialGroup;

	/*
	 * 需求者/请求者姓名
	*/
	private java.lang.String requester;

	/*
	 * 采购订单数量
	*/
	@TableField("po_count")
	private java.math.BigDecimal poCount;

	/*
	 * 采购订单的计量单位
	*/
	@DictMapping(type = DictType.JLDW)
	private java.lang.String poUnit;

	/*
	 * 含税单价
	*/
	private java.math.BigDecimal poPrice;

	/*
	 * 价格单位
	*/
	private java.lang.String priceUnit;

	/*
	 * 税码
	*/
	@DictMapping(type = DictType.SDM)
	private java.lang.String taxCode;

	/*
	 * 订单总价值
	*/
	private java.math.BigDecimal totalPrice;

	/*
	 * 发票收据标识
	*/
	private java.lang.String receiveFlag;

	/*
	 * 采购申请编号
	*/
	private java.lang.String prNo;

	/*
	 * 采购申请的项目编号
	*/
	private java.lang.String prItemNo;

	/*
	 * 交货日期
	*/
	@JSONField(format="yyyy-MM-dd HH:mm:ss")
	private java.util.Date deliveryDate;

	/*
	 * 成本中心
	*/
	private java.lang.String costCenter;

	/*
	 * 备注
	*/
	private java.lang.String remark;

	/*
	 * 是否已收货
	*/
	private java.lang.String receiptedFlag;

	/*
	 * 创建人
	*/
	private java.lang.String createdBy;

	/*
	 * 创建日期
	*/
	@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
	private java.sql.Timestamp creationDate;

	/*
	 * 修改人
	*/
	private java.lang.String lastUpdatedBy;

	/*
	 * 修改日期
	*/
	@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
	private java.sql.Timestamp lastUpdateDate;

//	/*
//	 * 建议交期
//	*/
	@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
	private java.util.Date suggestDate;

	/*
	 * 订单ID
	*/
	@Excel(name = "订单ID", orderNum = "1")
	private java.lang.String poId;

	/*
	 * 采购凭证号
	*/
	private java.lang.String poNo;

	/*
	 * 订单类型
	*/
	@DictMapping(type = DictType.CGDDLX)
	private java.lang.String poType;

	/*
	 * 供应商
	*/
	private java.lang.String vendorId;

	/*
	 * 公司代码
	*/
	@DictMapping(type = DictType.GC)
	private java.lang.String companyCode;

	/*
	 * 采购组
	*/
	@DictMapping(type = DictType.CGZ)
	private java.lang.String purchGroup;

	/*
	 * 采购组织
	*/
	@DictMapping(type = DictType.CGZZ)
	private java.lang.String purchOrg;

	/*
	 * 采购订单更改日期
	*/
	@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
	private java.util.Date sapUtime;

	/*
	 * 付款条件代码
	*/
	@DictMapping(type = DictType.FKTJ)
	private java.lang.String payCondition;

	/*
	 * 国际贸易条款
	*/
	@DictMapping(type = DictType.GJMYTK)
	private java.lang.String i18nTradeTerms;

	/*
	 * 货币码
	*/
	@DictMapping(type = DictType.BZ)
	private java.lang.String currencyCode;

	/*
	 * 公司名称
	*/
	private java.lang.String companyName;

	/*
	 * 城市
	*/
	@AddressMapping(type = AddressType.CITY)
	private java.lang.String city;

	/*
	 * 国家
	*/
	@AddressMapping(type = AddressType.COUNTRY)
	private java.lang.String country;

	/*
	 * 电话
	*/
	private java.lang.String telNo;

	/*
	 * 订单标志
	*/
	private java.lang.String poFlag;

	/*
	 * 审批流程状态
	*/
	@DictMapping(type = DictType.LCZT)
	private java.lang.String state;

	/*
	 * 供应商名称
	*/
	private String vendorName;
	
	/*
	 * 供应商SRM编码
	*/
	private String srmCode;
	
	/*
	 * 供应商SAP编码
	*/
	private String sapCode;
	/*
	 * 订单确认
	 */
	private String itemStatus;
	/*
	 * 图片url
	 */
	private String  url;
	
	/*
	 * 待发货的数量
	 */
	private java.math.BigDecimal backOrders;
	
	/*
	 * 已发货的数量
	 * 
	 */
	private java.math.BigDecimal shippedQty;
	/*
	 * 
	 *本次要发的量
	 */
	private java.math.BigDecimal dueOut;
}
